package com.jcfk.eam.domain.dto.mt;

import java.math.BigDecimal;

import java.util.ArrayList;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import com.jcfk.system.domain.dto.BaseDTO;
import org.hibernate.validator.constraints.Length;
import lombok.Data;

import java.util.Date;

/**
 * 量检具标定工单
 *
 * @author libinghai
 * @email 35738025@gqq.com
 * @date 2024-09-11
 */
@Data
public class EamMtCalibrateOrderDTO extends BaseDTO {

    private static final long serialVersionUID = 1L;

    /**
     * 数据版本号
     */
    private Long version;

    /**
     * 工单编号
     */
    @Length(max = 32, message = "工单编号长度不能超过32")
    private String orderNo;

    /**
     * 资产主键
     */
    @Length(max = 32, message = "资产主键长度不能超过32")
    private String assetId;

    /**
     * 资产编号
     */
    @Length(max = 32, message = "资产编号长度不能超过32")
    private String assetCode;

    /**
     * 资产名称
     */
    @Length(max = 32, message = "资产名称长度不能超过32")
    private String assetName;

    /**
     * 资产类型主键
     */
    @Length(max = 32, message = "资产类型主键长度不能超过32")
    private String assetTypeId;

    /**
     * 资产类型
     */
    private String assetTypeCode;
    private String assetTypeName;

    /**
     * 标定标准作业主键
     */
    @Length(max = 32, message = "标定标准作业主键长度不能超过32")
    private String standardId;

    /**
     * 标定标准作业
     */
    private String standardName;

    /**
     * 标准作业编号
     */
    @Length(max = 32, message = "标准作业编号长度不能超过32")
    private String standardCode;


    /**
     * 使用部门主键
     */
    @Length(max = 32, message = "使用部门主键长度不能超过32")
    private String usingDepartmentId;

    /**
     * 使用部门
     */
    @Length(max = 50, message = "使用部门长度不能超过50")
    private String usingDepartmentName;
    private String manufactureCode;
    private Integer checkPeriod;
    private String makerId;
    private String makerName;
    private String makerCode;
    private String measuringRange;
    private BigDecimal measuringDivision;

    /**
     * 使用人主键
     */
    @Length(max = 32, message = "使用人主键长度不能超过32")
    private String usingPersonId;

    /**
     * 使用人
     */
    @Length(max = 50, message = "使用人长度不能超过50")
    private String usingPersonName;

    /**
     * 校准结论
     */
    @Length(max = 32, message = "校准结论长度不能超过32")
    private String calibrateResult;

    /**
     * 标定日期
     */
    private Date calibrateDate;

    /**
     * 有效日期
     */
    private Date effectivedDate;

    /**
     * 标定温度
     */
    private BigDecimal calibrateTemp;

    /**
     * 标定地点
     */
    @Length(max = 50, message = "标定地点长度不能超过50")
    private String calibratePlace;

    /**
     * 标定人员
     */
    @Length(max = 50, message = "标定人员长度不能超过50")
    private String calibratePersonName;

    /**
     * 核验人员
     */
    @Length(max = 50, message = "核验人员长度不能超过50")
    private String verificationPersonName;

    /**
     * 备注
     */
    @Length(max = 255, message = "备注长度不能超过255")
    private String remarks;

    /**
     * 创建人名
     */
    @Length(max = 50, message = "创建人名长度不能超过50")
    private String createdUserName;

    /**
     * 更新人名
     */
    @Length(max = 50, message = "更新人名长度不能超过50")
    private String lastUpdatedUserName;


    /**
     * 批量添加子表
     */
    private List<EamMtCalibrateDetailDTO> details = new ArrayList<>();

    /**
     * 批量删除id
     */
    private List<String> ids;

}
